const errorHandler = (err, req, res, next) => {
    let statusCode = res.statusCode === 200 ? 500 : res.statusCode;
    let message = err.message;

    // 处理 MongoDB 验证错误
    if (err.name === 'ValidationError') {
        statusCode = 400;
        message = Object.values(err.errors).map(val => val.message).join(', ');
    }

    // 处理 MongoDB 重复键错误
    if (err.code === 11000) {
        statusCode = 400;
        message = '该资源已存在';
    }

    res.status(statusCode).json({
        success: false,
        error: message || '服务器内部错误',
        stack: process.env.NODE_ENV === 'production' ? '🥞' : err.stack
    });
};

module.exports = errorHandler;